Projektni zadatak - Stub¶
Slično kao i u prirodi (promena godišnjih doba, kruženje vode u prirodi, dan i noć, plima i oseka,...), i u programiranju je moguće pojedine korake ponoviti više puta. Kao i u prirodi, u programiranju je, za rešavanje pojedinih zadataka, neophodno da se neki delovi programa izvrše više puta. Za takve programe kažemo da sadrže ponavljanja, koje nazivamo ciklusi.
Ponavljanje ćemo demonstirati kreiranjem stuba kvadratnog oblika, čija je osnova kvadrat sa stranicama dužine 5 blokova, a visina 10. U Minecraft-u za izvršavanje određenih radnji, kao što su sadnja i žetva, miniranje, seča stabala i gradnja objekata, može se koristiti i agenta. Blokovi vezani za rad sa agentom nalaze se u kategoriji :
Faza 1.
Razmišljanje o problemu: Kretanje napred za 5 blokova i skretanjem na levo i desno (pod uglom od 90 stepeni) kreira se kvadratna osnova. Kretanje po z osi omogućava izradu kule od 10 blokova.
Faza 2
Pokreni Code Builder
(klikom na taster C
) i otvoriće se editor prozor u kome je moguće ređati blokove.
Ovaj problem ćemo podeliti u tri dela:
postavljamo agenta na određenu poziciju u svetu i opremamo ga određenim alatima za izradu objekata,
kreiranje kvadratne osnove stuba,
kreiranje stupa po vertikali.
Da bismo postavili agenta na željeno mesto koristimo blok . Unošenje reči dođi postaje okidač za postavljanje agenda na željeno mesto. Za postavljanje agenta na željeno mesto koristimo blok iz kategorije . Agenta ćemo postaviti na poziciju našeg lika (igrača) pomeren za dva blok (koraka) na levo. Za to ćemo koristiti promenljivu pozicija koje čuvaju trenutnu vrednost pozicije lika (igrača).
Kreiramo promenljivu pozicija u kategoriji Variables
:
Na početku vrednost promenljive pozicije je trenutni položaj lika u svetu pomeren za 2 bloka u levo. Postavljanje početne vrednosti ćemo definisati blokom . To znači da svaki put kada se pokrene program Minecraft postavlja vrednost pozicije na željeno mesto (agent je pomeren za dva bloka ulevo od lika (igrača)), i moguće je započeti konstrukciju kvadratne osnove stuba.
Iz kategorije Variables
prevlačimo blok , u koji prevlačimo blok kojim dobijamo trenutnu poziciju igrača pomerenu za 2 bloka ulevo.
Ovo postižemo na sledeći način, korišćenjem bloka:
U gornji deo bloka prevlačimo blok koji daje trenutnu poziciju lika (igrača) iz kategorije . U donjem delu bloka na poziciji x koordinate unosimo broj 2.
Izgled on start
bloka:
Da bismo postavili agenta na željeno mesto koristimo blok agent iz kategorije . U prvi argument bloka prevlačimo promenljivu pozicija, a u drugi iz liste biramo East (positive X).
Izgled koda:
Faza 3.
Testiramo program, klikom na dugme :.
Da bi agent mogao da postavlja blokove koje želimo moramo da obezbedimo njegov inventar sa predmetima koji su mu potrebni za gradnju stuba. Za to koristimo blok iz kategorije :
Važno: Inventar, otvara se klikom na taster E
, igrač koristi za upravljanje predmetima koje poseduje (nosi). Sastoji se iz slotova od 1 do 9 u koje može da „čuva“ predmete koji su mu potrebni za kreiranje različitih objekata.
Sada treba kreirati kvadratnu osnovu stuba. Da bi agent mogao da kreira kvadratnu osnovu, potreban je neki „okidač“ za taj događaj. Za to ćemo koristiti čet i reč kvadrat.
Da bismo postavili blokove u kvadratni oblik sa dužinom od 5 blokova koristimo blok iz kategorije .
Kvadrat je geometrijska figura sastavljena od četiri stranice jednake dužine, pri čemu su naspramne stranice paralelne, a uglovi između susednih stranica su 90o. Kvadrat ima četiri stranice, tako da u bloku ponavljanja unesemo broj 4
:
Da bi agent postavljao blokove prilikom kretanja po svetu potrebno je da koristimo blok iz kategorije .
Da bi mogao da izvrši tu radnju u datom bloku je potrebno postaviti drugi argument bloka na true
:
Dužinu stranice od 5 blokova definišemo blokom iz kategorije :
Kako su uglovi kvadrata pod pravim uglom, to obezbeđujemo korišćenjem bloka iz kategorije :
Testiranje programa. Klikom na dugme .
Nakon testiranja može se uočiti da agent nije konstruisao ceo pun kvadrat.
Da bismo to postigli potrebno je da pomerimo agenta. To postižemo uvođenjem bloka i iz padajuće liste izborom opcije up
. Agenta pomeramo za jedan blok pa postavljamo vrednost trećef parametra na 1
:
Sada ponovo testiramo program i dobijamo kvadrat:
Na osnovu gornjeg koda vidimo da agent nije na poziciji za blok iznad početne pozicije. Da bismo agenta postavili na željeno mesto uvodimo dva bloka i :
Testiranjem programa možemo da primetimo da agent po završetku kretanja ostavlja blok. To ne želimo da se desi. Zbog toga uvodimo još dva bloka kojim se agent postavlja bez bloka na poziciji za kreiranje zida:
Ostaje nam sada da isprogramiramo kreiranje stuba visine 10 blokova.
To postižemo uvođenjem nove petlje u koju će biti prevučena već kreirana petlja (kojom se kreiran kvadrat). Uvodimo blok i postavljamo vrednost brojača na 10
:
Postavljanje jedne petlje unutar tela druge petlje zove se ugneždavanje.
Konačan izgled koda kojim kreiramo kulu visine 10 blokova, sa osnovom kvadrata 5x5:
Faza 3
Testiranje programa. Klikom na dugme .
Na ovaj način je kreiran stub visine 10 blokova i širine 5x5.